package cn.superchart.module.user.service;

import cn.superchart.common.base.BaseService;
import cn.superchart.module.role.param.ScRoleAssignParam;
import cn.superchart.module.user.entity.ScUser;
import cn.superchart.module.user.param.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;

import java.util.List;

public interface ScUserService extends BaseService {

    void add(ScUserAddParam scUserAddParam);


    void edit(ScUserEditParam scUserEditParam);

    ScUserDetailParam detail(String id);

    String blogin(ScLoginParam scLoginParam);

    Boolean register(@Valid ScUserRegisterParam scUserRegisterParam);

    ScUser queryByAccount(String account);

    ScUserDetailParam getUserInfo();

    void logout(HttpServletRequest request, HttpServletResponse response);

    Page<ScUserDetailParam> page(ScUserPageParam userPageParam);

    void unOrLock(String id, String userStatus);

    void roleAssign(ScRoleAssignParam roleAssignParam);

    List<String> roleIds(String id);
}
